<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
 <head><title>Type (Type)</title><meta charset="utf-8"/>
  <link rel="stylesheet" href="odoc.css"/>
  <meta name="generator" content="odoc 2.4.1"/>
  <meta name="viewport" content="width=device-width,initial-scale=1.0"/>
  <script src="highlight.pack.js"></script>
  <script>hljs.initHighlightingOnLoad();</script>
 </head>
 <body class="odoc">
  <header class="odoc-preamble">
   <h1>Module <code><span>Type</span></code></h1>
  </header>
  <div class="odoc-content">
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-abstract">
     <a href="#type-abstract" class="anchor"></a>
     <code><span><span class="keyword">type</span> abstract</span></code>
    </div><div class="spec-doc"><p>Some <em>documentation</em>.</p></div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-alias">
     <a href="#type-alias" class="anchor"></a>
     <code><span><span class="keyword">type</span> alias</span>
      <span> = int</span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-private_">
     <a href="#type-private_" class="anchor"></a>
     <code><span><span class="keyword">type</span> private_</span>
      <span> = <span class="keyword">private</span> int</span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-constructor">
     <a href="#type-constructor" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a constructor</span>
      </span><span> = <span class="type-var">'a</span></span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-arrow">
     <a href="#type-arrow" class="anchor"></a>
     <code><span><span class="keyword">type</span> arrow</span>
      <span> = <span>int <span class="arrow">&#45;&gt;</span></span> int
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-higher_order">
     <a href="#type-higher_order" class="anchor"></a>
     <code><span><span class="keyword">type</span> higher_order</span>
      <span> = 
       <span>
        <span>(<span>int <span class="arrow">&#45;&gt;</span></span> int)
        </span> <span class="arrow">&#45;&gt;</span>
       </span> int
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-labeled">
     <a href="#type-labeled" class="anchor"></a>
     <code><span><span class="keyword">type</span> labeled</span>
      <span> = 
       <span><span class="label">l</span>:int 
        <span class="arrow">&#45;&gt;</span>
       </span> int
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-optional">
     <a href="#type-optional" class="anchor"></a>
     <code><span><span class="keyword">type</span> optional</span>
      <span> = 
       <span><span class="optlabel">?l</span>:int 
        <span class="arrow">&#45;&gt;</span>
       </span> int
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-labeled_higher_order">
     <a href="#type-labeled_higher_order" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> labeled_higher_order</span>
      <span> = 
       <span>
        <span>(
         <span><span class="label">l</span>:int 
          <span class="arrow">&#45;&gt;</span>
         </span> int)
        </span> <span class="arrow">&#45;&gt;</span>
       </span> 
       <span>
        <span>(
         <span><span class="optlabel">?l</span>:int 
          <span class="arrow">&#45;&gt;</span>
         </span> int)
        </span> <span class="arrow">&#45;&gt;</span>
       </span> int
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-pair">
     <a href="#type-pair" class="anchor"></a>
     <code><span><span class="keyword">type</span> pair</span>
      <span> = int * int</span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-parens_dropped">
     <a href="#type-parens_dropped" class="anchor"></a>
     <code><span><span class="keyword">type</span> parens_dropped</span>
      <span> = int * int</span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-triple">
     <a href="#type-triple" class="anchor"></a>
     <code><span><span class="keyword">type</span> triple</span>
      <span> = int * int * int</span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-nested_pair">
     <a href="#type-nested_pair" class="anchor"></a>
     <code><span><span class="keyword">type</span> nested_pair</span>
      <span> = <span>(int * int)</span> * int</span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-instance">
     <a href="#type-instance" class="anchor"></a>
     <code><span><span class="keyword">type</span> instance</span>
      <span> = <span>int <a href="#type-constructor">constructor</a></span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-long">
     <a href="#type-long" class="anchor"></a>
     <code><span><span class="keyword">type</span> long</span>
      <span> =
                
       <span><a href="#type-labeled_higher_order">labeled_higher_order</a>
         <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span>
        <span>[ `Bar 
         <span><span>| `Baz</span> of <a href="#type-triple">triple</a>
         </span> ]
        </span> <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span><a href="#type-pair">pair</a> 
        <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span><a href="#type-labeled">labeled</a> 
        <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span><a href="#type-higher_order">higher_order</a> 
        <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span>
        <span>(<span>string <span class="arrow">&#45;&gt;</span></span> int)
        </span> <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span>
        <span><span>(int * float * char * string * char * unit)</span> option
        </span> <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span><a href="#type-nested_pair">nested_pair</a> 
        <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span><a href="#type-arrow">arrow</a> 
        <span class="arrow">&#45;&gt;</span>
       </span>
                
       <span>string <span class="arrow">&#45;&gt;</span></span>
                                                                 
       <span><a href="#type-nested_pair">nested_pair</a> array</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-variant_e">
     <a href="#type-variant_e" class="anchor"></a>
     <code><span><span class="keyword">type</span> variant_e</span>
      <span> = </span><span>{</span>
     </code>
     <ol>
      <li id="type-variant_e.a" class="def record field anchored">
       <a href="#type-variant_e.a" class="anchor"></a>
       <code><span>a : int;</span></code>
      </li>
     </ol><code><span>}</span></code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-variant">
     <a href="#type-variant" class="anchor"></a>
     <code><span><span class="keyword">type</span> variant</span>
      <span> = </span>
     </code>
     <ol>
      <li id="type-variant.A" class="def variant constructor anchored">
       <a href="#type-variant.A" class="anchor"></a>
       <code><span>| </span><span><span class="constructor">A</span></span>
       </code>
      </li>
      <li id="type-variant.B" class="def variant constructor anchored">
       <a href="#type-variant.B" class="anchor"></a>
       <code><span>| </span>
        <span><span class="constructor">B</span> 
         <span class="keyword">of</span> int
        </span>
       </code>
      </li>
      <li id="type-variant.C" class="def variant constructor anchored">
       <a href="#type-variant.C" class="anchor"></a>
       <code><span>| </span><span><span class="constructor">C</span></span>
       </code>
       <div class="def-doc"><span class="comment-delim">(*</span><p>foo</p>
        <span class="comment-delim">*)</span>
       </div>
      </li>
      <li id="type-variant.D" class="def variant constructor anchored">
       <a href="#type-variant.D" class="anchor"></a>
       <code><span>| </span><span><span class="constructor">D</span></span>
       </code>
       <div class="def-doc"><span class="comment-delim">(*</span>
        <p><em>bar</em></p><span class="comment-delim">*)</span>
       </div>
      </li>
      <li id="type-variant.E" class="def variant constructor anchored">
       <a href="#type-variant.E" class="anchor"></a>
       <code><span>| </span>
        <span><span class="constructor">E</span> 
         <span class="keyword">of</span> 
         <a href="#type-variant_e">variant_e</a>
        </span>
       </code>
      </li>
     </ol>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-variant_c">
     <a href="#type-variant_c" class="anchor"></a>
     <code><span><span class="keyword">type</span> variant_c</span>
      <span> = </span><span>{</span>
     </code>
     <ol>
      <li id="type-variant_c.a" class="def record field anchored">
       <a href="#type-variant_c.a" class="anchor"></a>
       <code><span>a : int;</span></code>
      </li>
     </ol><code><span>}</span></code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-gadt">
     <a href="#type-gadt" class="anchor"></a>
     <code><span><span class="keyword">type</span> <span>_ gadt</span></span>
      <span> = </span>
     </code>
     <ol>
      <li id="type-gadt.A" class="def variant constructor anchored">
       <a href="#type-gadt.A" class="anchor"></a>
       <code><span>| </span>
        <span><span class="constructor">A</span> : 
         <span>int <a href="#type-gadt">gadt</a></span>
        </span>
       </code>
      </li>
      <li id="type-gadt.B" class="def variant constructor anchored">
       <a href="#type-gadt.B" class="anchor"></a>
       <code><span>| </span>
        <span><span class="constructor">B</span> : int 
         <span class="arrow">&#45;&gt;</span> 
         <span>string <a href="#type-gadt">gadt</a></span>
        </span>
       </code>
      </li>
      <li id="type-gadt.C" class="def variant constructor anchored">
       <a href="#type-gadt.C" class="anchor"></a>
       <code><span>| </span>
        <span><span class="constructor">C</span> : 
         <a href="#type-variant_c">variant_c</a> 
         <span class="arrow">&#45;&gt;</span> 
         <span>unit <a href="#type-gadt">gadt</a></span>
        </span>
       </code>
      </li>
     </ol>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-degenerate_gadt">
     <a href="#type-degenerate_gadt" class="anchor"></a>
     <code><span><span class="keyword">type</span> degenerate_gadt</span>
      <span> = </span>
     </code>
     <ol>
      <li id="type-degenerate_gadt.A" class="def variant constructor
       anchored"><a href="#type-degenerate_gadt.A" class="anchor"></a>
       <code><span>| </span>
        <span><span class="constructor">A</span> : 
         <a href="#type-degenerate_gadt">degenerate_gadt</a>
        </span>
       </code>
      </li>
     </ol>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-private_variant">
     <a href="#type-private_variant" class="anchor"></a>
     <code><span><span class="keyword">type</span> private_variant</span>
      <span> = <span class="keyword">private</span> </span>
     </code>
     <ol>
      <li id="type-private_variant.A" class="def variant constructor
       anchored"><a href="#type-private_variant.A" class="anchor"></a>
       <code><span>| </span><span><span class="constructor">A</span></span>
       </code>
      </li>
     </ol>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-record">
     <a href="#type-record" class="anchor"></a>
     <code><span><span class="keyword">type</span> record</span>
      <span> = </span><span>{</span>
     </code>
     <ol>
      <li id="type-record.a" class="def record field anchored">
       <a href="#type-record.a" class="anchor"></a>
       <code><span>a : int;</span></code>
      </li>
      <li id="type-record.b" class="def record field anchored">
       <a href="#type-record.b" class="anchor"></a>
       <code><span><span class="keyword">mutable</span> b : int;</span>
       </code>
      </li>
      <li id="type-record.c" class="def record field anchored">
       <a href="#type-record.c" class="anchor"></a>
       <code><span>c : int;</span></code>
       <div class="def-doc"><span class="comment-delim">(*</span><p>foo</p>
        <span class="comment-delim">*)</span>
       </div>
      </li>
      <li id="type-record.d" class="def record field anchored">
       <a href="#type-record.d" class="anchor"></a>
       <code><span>d : int;</span></code>
       <div class="def-doc"><span class="comment-delim">(*</span>
        <p><em>bar</em></p><span class="comment-delim">*)</span>
       </div>
      </li>
      <li id="type-record.e" class="def record field anchored">
       <a href="#type-record.e" class="anchor"></a>
       <code><span>e : 'a. <span class="type-var">'a</span>;</span></code>
      </li>
     </ol><code><span>}</span></code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-polymorphic_variant">
     <a href="#type-polymorphic_variant" class="anchor"></a>
     <code><span><span class="keyword">type</span> polymorphic_variant</span>
      <span> = </span><span>[ </span>
     </code>
     <ol>
      <li id="type-polymorphic_variant.A" class="def variant constructor
       anchored"><a href="#type-polymorphic_variant.A" class="anchor"></a>
       <code><span>| </span><span>`A</span></code>
      </li>
      <li id="type-polymorphic_variant.B" class="def variant constructor
       anchored"><a href="#type-polymorphic_variant.B" class="anchor"></a>
       <code><span>| </span>
        <span>`B <span class="keyword">of</span> int</span>
       </code>
      </li>
      <li id="type-polymorphic_variant.C" class="def variant constructor
       anchored"><a href="#type-polymorphic_variant.C" class="anchor"></a>
       <code><span>| </span>
        <span>`C <span class="keyword">of</span> int * unit</span>
       </code>
      </li>
      <li id="type-polymorphic_variant.D" class="def variant constructor
       anchored"><a href="#type-polymorphic_variant.D" class="anchor"></a>
       <code><span>| </span><span>`D</span></code>
      </li>
     </ol><code><span> ]</span></code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-polymorphic_variant_extension">
     <a href="#type-polymorphic_variant_extension" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> polymorphic_variant_extension
      </span><span> = </span><span>[ </span>
     </code>
     <ol>
      <li id="type-polymorphic_variant_extension.polymorphic_variant"
       class="def variant type anchored">
       <a href="#type-polymorphic_variant_extension.polymorphic_variant"
        class="anchor">
       </a>
       <code><span>| </span>
        <span><a href="#type-polymorphic_variant">polymorphic_variant</a>
        </span>
       </code>
      </li>
      <li id="type-polymorphic_variant_extension.E" class="def variant
       constructor anchored">
       <a href="#type-polymorphic_variant_extension.E" class="anchor"></a>
       <code><span>| </span><span>`E</span></code>
      </li>
     </ol><code><span> ]</span></code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-nested_polymorphic_variant">
     <a href="#type-nested_polymorphic_variant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> nested_polymorphic_variant
      </span><span> = </span><span>[ </span>
     </code>
     <ol>
      <li id="type-nested_polymorphic_variant.A" class="def variant
       constructor anchored">
       <a href="#type-nested_polymorphic_variant.A" class="anchor"></a>
       <code><span>| </span>
        <span>`A <span class="keyword">of</span> 
         <span>[ `B <span>| `C</span> ]</span>
        </span>
       </code>
      </li>
     </ol><code><span> ]</span></code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-private_extenion">
     <a href="#type-private_extenion" class="anchor"></a>
     <code><span><span class="keyword">type</span> private_extenion</span>
      <span> = <span class="keyword">private</span> </span>
      <span>[&gt; </span>
     </code>
     <ol>
      <li id="type-private_extenion.polymorphic_variant" class="def variant
       type anchored">
       <a href="#type-private_extenion.polymorphic_variant" class="anchor">
       </a>
       <code><span>| </span>
        <span><a href="#type-polymorphic_variant">polymorphic_variant</a>
        </span>
       </code>
      </li>
     </ol><code><span> ]</span></code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-object_">
     <a href="#type-object_" class="anchor"></a>
     <code><span><span class="keyword">type</span> object_</span>
      <span> = <span>&lt; a : int ; b : int ; c : int &gt;</span></span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec module-type anchored" id="module-type-X">
     <a href="#module-type-X" class="anchor"></a>
     <code>
      <span><span class="keyword">module</span> 
       <span class="keyword">type</span> 
       <a href="Type-module-type-X.html">X</a>
      </span>
      <span> = <span class="keyword">sig</span> ... 
       <span class="keyword">end</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-module_">
     <a href="#type-module_" class="anchor"></a>
     <code><span><span class="keyword">type</span> module_</span>
      <span> = 
       <span>(<span class="keyword">module</span> 
        <a href="Type-module-type-X.html">X</a>)
       </span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-module_substitution">
     <a href="#type-module_substitution" class="anchor"></a>
     <code><span><span class="keyword">type</span> module_substitution</span>
      <span> = 
       <span>(<span class="keyword">module</span> 
        <a href="Type-module-type-X.html">X</a> 
        <span class="keyword">with</span> <span class="keyword">type</span>
         <a href="Type-module-type-X.html#type-t">t</a> = int 
        <span class="keyword">and</span> <span class="keyword">type</span>
         <a href="Type-module-type-X.html#type-u">u</a> = unit)
       </span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-covariant">
     <a href="#type-covariant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>+'a covariant</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-contravariant">
     <a href="#type-contravariant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>-'a contravariant</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-bivariant">
     <a href="#type-bivariant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>_ bivariant</span></span>
      <span> = int</span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-binary">
     <a href="#type-binary" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>('a, 'b) binary</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-using_binary">
     <a href="#type-using_binary" class="anchor"></a>
     <code><span><span class="keyword">type</span> using_binary</span>
      <span> = 
       <span><span>(int, int)</span> <a href="#type-binary">binary</a></span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-name">
     <a href="#type-name" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'custom name</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-constrained">
     <a href="#type-constrained" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a constrained</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = int
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-exact_variant">
     <a href="#type-exact_variant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a exact_variant</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = 
       <span>[ `A <span><span>| `B</span> of int</span> ]</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-lower_variant">
     <a href="#type-lower_variant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a lower_variant</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = 
       <span>[&gt; `A <span><span>| `B</span> of int</span> ]</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-any_variant">
     <a href="#type-any_variant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a any_variant</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = <span>[&gt;  ]</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-upper_variant">
     <a href="#type-upper_variant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a upper_variant</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = 
       <span>[&lt; `A <span><span>| `B</span> of int</span> ]</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-named_variant">
     <a href="#type-named_variant" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a named_variant</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = 
       <span>[&lt; 
        <a href="#type-polymorphic_variant">polymorphic_variant</a> ]
       </span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-exact_object">
     <a href="#type-exact_object" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a exact_object</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = 
       <span>&lt; a : int ; b : int &gt;</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-lower_object">
     <a href="#type-lower_object" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a lower_object</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = 
       <span>&lt; a : int ; b : int.. &gt;</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-poly_object">
     <a href="#type-poly_object" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> <span>'a poly_object</span>
      </span><span> = <span class="type-var">'a</span></span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = 
       <span>&lt; a : 'a. <span class="type-var">'a</span> &gt;</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-double_constrained">
     <a href="#type-double_constrained" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> 
       <span>('a, 'b) double_constrained</span>
      </span>
      <span> = <span class="type-var">'a</span> * 
       <span class="type-var">'b</span>
      </span>
      <span> <span class="keyword">constraint</span> 
       <span class="type-var">'a</span> = int 
       <span class="keyword">constraint</span> 
       <span class="type-var">'b</span> = unit
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-as_">
     <a href="#type-as_" class="anchor"></a>
     <code><span><span class="keyword">type</span> as_</span>
      <span> = int <span class="keyword">as</span> 'a * 
       <span class="type-var">'a</span>
      </span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-extensible">
     <a href="#type-extensible" class="anchor"></a>
     <code><span><span class="keyword">type</span> extensible</span>
      <span> = </span><span>..</span>
     </code>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type extension anchored" id="extension-decl-Extension">
     <a href="#extension-decl-Extension" class="anchor"></a>
     <code>
      <span><span class="keyword">type</span> 
       <a href="#type-extensible">extensible</a> += 
      </span>
     </code>
     <ol>
      <li id="extension-Extension" class="def variant extension anchored">
       <a href="#extension-Extension" class="anchor"></a>
       <code><span>| </span>
        <span><span class="extension">Extension</span></span>
       </code>
       <div class="def-doc"><span class="comment-delim">(*</span>
        <p>Documentation for 
         <a href="#extension-Extension"><code>Extension</code></a>.
        </p><span class="comment-delim">*)</span>
       </div>
      </li>
      <li id="extension-Another_extension" class="def variant extension
       anchored"><a href="#extension-Another_extension" class="anchor"></a>
       <code><span>| </span>
        <span><span class="extension">Another_extension</span></span>
       </code>
       <div class="def-doc"><span class="comment-delim">(*</span>
        <p>Documentation for 
         <a href="#extension-Another_extension">
          <code>Another_extension</code>
         </a>.
        </p><span class="comment-delim">*)</span>
       </div>
      </li>
     </ol>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-mutually">
     <a href="#type-mutually" class="anchor"></a>
     <code><span><span class="keyword">type</span> mutually</span>
      <span> = </span>
     </code>
     <ol>
      <li id="type-mutually.A" class="def variant constructor anchored">
       <a href="#type-mutually.A" class="anchor"></a>
       <code><span>| </span>
        <span><span class="constructor">A</span> 
         <span class="keyword">of</span> 
         <a href="#type-recursive">recursive</a>
        </span>
       </code>
      </li>
     </ol>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec type anchored" id="type-recursive">
     <a href="#type-recursive" class="anchor"></a>
     <code><span><span class="keyword">and</span> recursive</span>
      <span> = </span>
     </code>
     <ol>
      <li id="type-recursive.B" class="def variant constructor anchored">
       <a href="#type-recursive.B" class="anchor"></a>
       <code><span>| </span>
        <span><span class="constructor">B</span> 
         <span class="keyword">of</span> 
         <a href="#type-mutually">mutually</a>
        </span>
       </code>
      </li>
     </ol>
    </div>
   </div>
   <div class="odoc-spec">
    <div class="spec exception anchored" id="exception-Foo">
     <a href="#exception-Foo" class="anchor"></a>
     <code><span><span class="keyword">exception</span> </span>
      <span><span class="exception">Foo</span> 
       <span class="keyword">of</span> int * int
      </span>
     </code>
    </div>
   </div>
  </div>
 </body>
</html>
